package com.xinqi.modules.course.textbook.service;

import com.xinqi.common.base.response.PageInfo;
import com.xinqi.common.base.response.Param;
import com.xinqi.modules.course.textbook.dto.req.CourseCloudTextbookContentCreateDTO;
import com.xinqi.modules.course.textbook.dto.req.CourseCloudTextbookContentDeleteDTO;
import com.xinqi.modules.course.textbook.dto.req.CourseCloudTextbookContentQueryDTO;
import com.xinqi.modules.course.textbook.dto.req.CourseCloudTextbookContentUpdateDTO;
import com.xinqi.modules.course.textbook.dto.rsp.CourseCloudTextbookContentResultDTO;

import javax.validation.Valid;
import java.util.List;

/**
 * 课程模块云课本课堂内容服务层
 *
 * @author: wenjie
 * @date: 2023/05/30
 */
public interface CourseCloudTextbookContentService {
    /**
     * 分页查询 课程模块云课本课堂内容数据
     */
    PageInfo<CourseCloudTextbookContentResultDTO> page(Param pageable, CourseCloudTextbookContentQueryDTO query);

    /**
     * 查询 课程模块云课本课堂内容数据
     */
    List<CourseCloudTextbookContentResultDTO> find(CourseCloudTextbookContentQueryDTO query);

    /**
     * 根据id查询 课程模块云课本课堂内容数据
     */
    CourseCloudTextbookContentResultDTO findById(Long id);

    /**
     * 新增 课程模块云课本课堂内容数据
     */
    Long insert(@Valid CourseCloudTextbookContentCreateDTO dto);

    /**
     * 根据id修改 课程模块云课本课堂内容数据
     */
    Boolean updateById(@Valid CourseCloudTextbookContentUpdateDTO dto);

    /**
     * 根据id删除 课程模块云课本课堂内容数据
     */
    Boolean deleteById(Long id);

    /**
     * 根据id删除 课程模块云课本课堂内容数据
     */
    Boolean deleteById(CourseCloudTextbookContentDeleteDTO dto);
}
